package com.yf.springboot;

import com.yf.springboot.config.TaskThreadPoolConfig;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;

/**
 * 定时任务
 * 1、@EnableScheduling 标注在启动类或者定时任务配置类上，开启定时任务
 * 2、@Scheduled 标注在方法上，开启一个定时任务
 * 3、自动配置类：TaskSchedulingAutoConfiguration,属性绑定在TaskSchedulingProperties类
 *
 * 异步任务
 * 1、@EnableAsync 标注在启动类或者异步任务配置类上，开启异步任务
 * 2、@Async 标注在方法上，方法就由同步执行转为异步执行
 * 3、自动配置类：TaskExecutionAutoConfiguration，属性绑定在TaskExecutionProperties类
 */
@SpringBootApplication
@EnableConfigurationProperties({TaskThreadPoolConfig.class}) //开启配置属性支持
@EnableAsync //开启异步线程支持
@EnableScheduling // 开启springboot定时任务
public class ScheduledApplication {

	public static void main(String[] args) {
		SpringApplication.run(ScheduledApplication.class, args);
	}

}
